package com.zhala.system.service;

import com.zhala.common.core.domain.BaseEntity;
import com.zhala.common.core.domain.entity.SysUser;
import com.zhala.common.core.domain.model.LoginUser;
import com.zhala.common.utils.SecurityUtils;

/**
 * @author SSH
 * @version 1.0
 * @description: TODO
 * @date 2024/11/11 22:08
 */
public interface CommonService {

    /**
     * 初始化实体类公共字段的方法
     * 主要用于设置创建者、创建时间和更新时间
     *
     * @param base 实体类基类对象，用于封装公共字段
     */
    void initPojo(BaseEntity base);


    /**
     * 更新实体类公共字段的方法
     * 主要用于设置更新者、创建者、创建时间和更新时间
     *
     * @param base 实体类基类对象，用于封装公共字段
     */
    void updatePojo(BaseEntity base);

    /**
     * 获取当前登录用户的昵称
     * <p>
     * 此方法首先尝试获取当前登录的用户信息，如果获取成功且用户信息不为空，
     * 则进一步获取用户的昵称如果用户信息获取失败或用户对象为空，
     * 则返回空字符串表示未找到昵称
     *
     * @return 登录用户的昵称，如果未找到则返回空字符串
     */
    String getUserNickName();
}